1. Field of the Invention
The present invention relates, in general, to remote and/or networked point-of-service (POS) terminals and handheld units (herein referred to as “POS”) containing collections of devices such as those used in retail, distribution, and the like, and, more particularly, to software, hardware, systems, and methods for operating remote and/or networked POS in a networked manner such that the devices are compatible with each other and with desktop devices within the network.
2. Relevant Background.
In many industries, there has been significant growth in the use of handheld, mobile computing units that communicate wirelessly with a computer network or system. These units are used in a variety of ways including tracking inventory, issuing traffic and parking tickets, processing patient information at a hospital, and processing customer and product information in retail environments. For example, the retail industry uses such networked remote units for customer interaction, such as kiosks or mobile hand held POS. Each of these units typically is configured with hardware and software to allow it to communicate with a central or host server and to control or operate a number of devices. For example, a networked retail POS unit may have attached devices that it controls such as a magnetic strip reader (e.g., credit card reader), a touch screen, a keyboard or keypad, a mouse, a bar code scanner, and a printer (e.g., a receipt printer). In the retail setting, these devices provided as part of a POS are used to efficiently and reliably process sales or service transactions at or near a checkout counter or aisle and also are often used to perform a number of other key retail functions including managing inventory, tracking sales, understanding customer buying patterns, delivering customer loyalty programs, supporting coupon and store card redemption, and other activities to increase customer service levels and sales associate productivity.
With the increase in the number and variety of POS and their attached POS devices, a growing concern is how to cost effectively maintain and manage POS within the overall distributed network. Presently, remotely accessing networked devices requires that applications be specifically modified to support such network access and specific network-aware drivers for each of the attached devices be installed on the remote or mobile POS (or POS unit). As a result, it has been difficult to manage a combined network of standalone, networked and remote POS units since even the same device (such as a scanner or the like) often requires software that is incompatible or at least different depending on whether it is accessed remotely even within the same store or business. Maintenance is made difficult because each POS unit must have its own code written and installed to run, for example, a custom POS package along with the device-resident drivers for the particular peripherals attached to the POS unit. This causes multiple problems including a proliferation of software packages to be maintained by a company's information technology (IT) personnel and also, numerous interfaces to learn by the IT personnel and users of the POS units. Also, the dynamic nature of retail and other industries requires successful businesses to be able to react quickly and adopt new POS devices (such as a smart card reader or the like) and customer service software. This leads to more and more upgrading and changes of the POS unit and its devices and included software, which can be time consuming and costly. As a result, there is an ongoing demand for more compatible and easier to maintain and use remote or mobile POS units for in-store or business networks.
To address the need for standardization in the retail industry, the Association of Retail Standards (ARTS) has developed and administers further development of the UnifiedPOS standard for retail POS devices. The UnifiedPOS provides an architectural definition for each type of POS device in terms of a unique set of properties, methods, and events, e.g., UML APIs defining such properties, methods, and events, so that any POS application that complies with the UnifiedPOS standard can potentially execute independently of the set of peripherals or POS devices connected to the POS (i.e., the terminal or unit containing the POS devices) upon which the POS software or application is deployed or run. In other words, the UnifiedPOS standard defines a model for how devices such as scanners and printers interface with the POS and the POS application software, which potentially allows retail stores to employ peripherals from numerous manufacturers without affecting their POS application. As such the UnifiedPOS standard is a guide for how applications should be written to interact with POS peripherals and the POS system, but for its full value to be realized, UnifiedPOS must be mapped to a specific deployment platform. Currently, there are two such platform mappings: JavaPOS and OPOS, with the JavaPOS being based on the Java programming language and OPOS using the Windows operating system platform. When deployed, JavaPOS applications run on all operating systems including Windows, Linux, and UNIX, while OPOS applications run only on the Windows operating system, but JavaPOS and OPOS applications both comply with UnifiedPOS and provide an improved level of interoperability to allow nearly any local peripheral or POS device to be accessed and controlled by a POS application.
UnifiedPOS in the retail market has seen significant success as evidenced by the number of independent software vendors who have developed applications that are in conformation with UnifiedPOS. The number of customers deploying applications which use UnifiedPOS has grown year over year. This large installed base of customers and applications that are compliant with UnifiedPOS is evidence of the benefits of the standardized device interface abstraction approach to device access by software applications. Similar standardized approaches could be developed for markets other than retail.
Even with the adoption of POS applications complying with UnifiedPOS, the IT infrastructure for existing POS systems can be complex and hinder maintenance and upgrades. A typical POS system includes in-store servers that are installed to handle functions such as managing, recording, and storing transaction data and communicating such data to systems outside the store. The POS units or terminals are typically “fat” in that they contain the entire POS stack. For example, a typical POS system 100 that includes a POS terminal or client POS (or POS unit or terminal) 120 that is configured using JavaPOS is shown in FIG. 1. As shown, a host server 110 is provided that runs a variety of host retail applications 114, such as for tracking and processing data collected by the POS 120. The POS 120 communicates in a wired or wireless fashion with the host server 110 to provide data, such as sales data, to the host POS applications 114. The POS 120 is “fat” because it is basically a standalone computer or computing device that includes a processor 122, an operating system (OS) 124, memory 128, and the entire POS stack. The POS stack includes in this JavaPOS embodiment (with a similar stack provided for OPOS embodiments) a JavaPOS application 130, JavaPOS device controls 132, JavaPOS device services 134, and a javax.comm module 136 that provides the communication interface with a set of locally connected peripherals or POS devices 138. The JavaPOS device controls 132 and JavaPOS device services 134 are used to map the JavaPOS application 130 to the POS devices 138 and are the drivers for the POS devices 138. As can be seen, the POS footprint on the POS 120 is relatively large requiring processing power and other hardware to support the POS stack and application. Additionally, upgrading the POS 120 requires the POS 120 to be reconfigured such as by replacing the JavaPOS application 130 or drivers/services 132, 134, and such maintenance must be performed on each such POS 120.
Some attempts have been made to simplify POS or to make these units or terminals “thinner” to reduce the complexity and cost of each POS and to reduce maintenance and coding issues. For example, ARTS is developing a WamPOS architecture in which a POS application is run on a web server rather than on the local POS terminal. While this architecture separates the devices from the POS application, the POS terminal remains relatively “fat” as it runs a web browser and the complete HTML protocol stack that is used to communicate with the POS application using a device specific markup language and web communication technology (e.g., JavaScript and HTTP). A further drawback of this approach is that the JavaScript alters with each browser variant and the markup language used by the web server requires separate definitions for each POS device or peripheral, and additionally, the POS terminal must be configured with special link code to allow the browser to communicate with the POS stack on the POS terminal, i.e., for the browser to interface with the local device service code. The POS terminal typically also includes a virtual machine and an operating system that considerably increase the footprint on the POS terminal. This approach is also undesirable because it provides a completely different POS application interface than is found in existing POS terminals and system, e.g., different than provided in the system 100 of FIG. 1. This means that under WamPOS and similar approaches that any existing POS application and device service modules have to be rewritten.
While significant steps have been made in the area of remote or mobile POS, there continues to be a need for improved methods of operating and configuring their attached devices such that the applications controlling them are compatible with each other and with existing POS applications running on checkout-lane POS controlling locally connected peripherals or POS devices. This goal is to allow the same POS applications to service any POS and allow the remote or mobile POS and attached POS devices to be more easily be maintained and upgraded with new controlling applications and retail peripheral device servers without requiring corresponding changes to the POS applications.